package com.hkj.configcenter.core.model;

import com.hkj.configcenter.core.Context;

import java.util.Comparator;

public class StringComparator implements Comparator<String> {

    @Override
    public int compare(String o1, String o2) {
        // common-config 优先排前面
        if (o1.equalsIgnoreCase(Context.getCommonConfig().substring(1, Context.getCommonConfig().length()))) {
            return -1;
        }
        if (o2.equalsIgnoreCase(Context.getCommonConfig().substring(1, Context.getCommonConfig().length()))) {
            return 1;
        }

        // online-machines 排后面
        if (o1.endsWith(Context.ONLINE_MACHINES.substring(1, Context.ONLINE_MACHINES.length()))) {
            return 1;
        }

        if (o1.equals(o2)) {
            return 0;
        }
        char[] d1 = o1.toLowerCase().toCharArray();
        char[] d2 = o2.toLowerCase().toCharArray();
        for (int i = 0; i < d1.length; i++) {
            if (i < d2.length && (int) d1[i] == (int) d2[i]) {
                continue;
            }
            if (i >= d2.length) {
                return 1;
            }
            if ((int) d1[i] > (int) d2[i]) {
                return 1;
            }
            return -1;
        }
        return 0;
    }

}
